package org.jeecg.modules.tplus.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

/**
 *  存货信息查询
 *
 * @author hzq
 */
@Data
public class InventoryQueryReqDto {
    /**
     * 请求参数
     */
    @Schema(description = "请求参数")
    @JsonProperty(value = "param")
    private InventoryQueryParam param = new InventoryQueryParam();

    @Data
    public static class InventoryQueryParam{
        /**
         * 存货编码
         */
        @Schema(description = "存货编码")
        @JsonProperty(value = "Code")
        private String code;

        /**
         * 存货名称
         */
        @Schema(description = "存货名称")
        @JsonProperty(value = "Name")
        private String name;

        /**
         * 是否停用
         */
        @Schema(description = "是否停用")
        @JsonProperty(value = "Disabled")
        private Boolean disabled;

        /**
         * 是否停用
         */
        @Schema(description = "是否停用")
        @JsonProperty(value = "InventoryClass")
        private InventoryClass inventoryClass;

        @Getter
        @Setter
        public static class InventoryClass{
            /**
             * 分类编码
             */
            @JsonProperty(value = "Code")
            private String code;
        }

        /**
         * 记录页码
         */
        @Schema(description = "记录页码")
        @JsonProperty(value = "PageIndex")
        private int pageIndex = 1;

        /**
         * 记录条数
         */
        @Schema(description = "记录条数")
        @JsonProperty(value = "PageSize")
        private int pageSize = 50;

        /**
         * 更新时间区间查询的开始时间，精确到秒
         */
        @Schema(description = "更新时间区间查询的开始时间，精确到秒")
        @JsonProperty(value = "UpdateDateBegin")
        private String updateDateBegin;

        /**
         * 更新时间区间查询的结束时间，精确到秒
         */
        @Schema(description = "更新时间区间查询的结束时间，精确到秒")
        @JsonProperty(value = "UpdateDateEnd")
        private String updateDateEnd;

        /**
         * 记录数
         */
        @Schema(description = "记录数")
        @JsonProperty(value = "ts")
        private String ts;

        /**
         * 返回字段
         */
        @Schema(description = "返回字段")
        @JsonProperty(value = "SelectFields")
        private String selectFields;
    }


}
